<template>
	<view class="themeItem">
		<navigator :url="'/pages/classlist/classlist?id=' + item._id + '&name=' + item.name" class="box" v-if="!isMore">
			<image class="pic" :src="item.picurl" mode="aspectFill"></image>
			<view class="mask">{{ item.name }}</view>
			
			<view v-show="formatTimeDifference(item.updateTime)">
				<view class="tab">{{ formatTimeDifference(item.updateTime) }}前更新</view>
			</view>
		</navigator>

		<navigator url="/pages/classify/classify" open-type="reLaunch" class="box more" v-if="isMore">
			<image class="pic" src="../../common/images/more.jpg" mode="aspectFill"></image>
			<view class="mask">
				<uni-icons type="more-filled" size="34" color="#fff"></uni-icons>
				<view class="text">更多</view>
			</view>
		</navigator>
	</view>
</template>

<script setup>
import { formatTimeDifference } from '@/utils/common.js';
defineProps({
	isMore: {
		type: Boolean,
		default: false
	},
	item: {
		type: Object,
		default() {
			return {
				name: '默认名称',
				picurl: '../../common/images/classify1.jpg',
				updateTime: Date.now() - 1000 * 60 * 60 ** 5,
				_id: ''
			};
		}
	}
});
</script>

<style lang="scss" scoped>
.themeItem {
	.box {
		height: 340rpx;
		border-radius: 10rpx;
		overflow: hidden;
		//相对定位，决定了他的子布局需要使用absolute来定位
		position: relative;

		.pic {
			height: 100%;
			width: 100%;
		}

		.mask {
			width: 100%;
			height: 70rpx;
			position: absolute;
			bottom: 0;
			left: 0;
			background-color: rgba(0, 0, 0, 0.2);
			display: flex;
			justify-content: center;
			align-items: center;
			color: #fff;
			//背景半透明
			backdrop-filter: blur(20rpx);
			font-weight: 600;
		}

		.tab {
			position: absolute;
			top: 0;
			left: 0;
			background: rgba(250, 129, 90, 0.7);
			backdrop-filter: blur(20rxp);
			color: #fff;
			font-size: 22rpx;
			padding: 6rpx 14rpx;
			//右下角圆角
			border-radius: 0 0 20rpx 0;
			//内容缩放
			transform: scale(0.8);
			//增加缩放的偏移量
			transform-origin: left top;
		}
	}
	.box.more {
		.mask {
			width: 100%;
			height: 100%;
			flex-direction: column;
		}
		.text {
			font-size: 28rpx;
		}
	}
}
</style>
